[UPDATE] Amazon IVSで品質とコストのバランスが最適化されたAdvanced Channel Typeが利用可能になりました!
はじめに
清水です。本エントリでお伝えするアップデート情報はこちら!AWSのマネージド型ライブストリーミングソリューションであるAmazon Interactive Video Service (Amazon IVS)で品質とコストのバランスが最適化されたAdvanced Channel Typeが利用可能になりました。(2023/06/02付でポストされたアップデートとなります。)
- Amazon Interactive Video Service introduces Advanced channel types for flexible input encoding
- Control quality of service and costs with Amazon IVS advanced channel types | AWS for M&E Blog
本エントリではこのAdvanced Channel Typeの詳細やその利点、また実際にライブストリーミングを行いマニフェストファイルから解像度やビットレートなどABR ladderを確認してみたのでまとめてみたいと思います。
Amazon IVSのChannelについて振り返りつつAdvanced Channelの詳細を確認してみる
まずはAmazon IVSのChannelについて振り返りつつ、今回のアップデートとなるAdvanced Channelはどんなものか、詳細を確認してみます。
2020年7月のリリース当時からAmazon IVSではStandardとBasicの2つのChannel Typeが利用可能でした。
Standard ChannelはフルHD (1080p)、最大ビットーレート8.5Mbpsの入力に対応し、入力動画をトランスコードして視聴者へ最適化されたAdaptive Bitrate (ABR)で配信が可能です。対してBasic ChannelはSD (480p)、最大ビットレート1.5Mbpsの入力に対応、入力動画をトランスコードせずにそのまま配信します。つまり視聴者にもSD (480p)、最大ビットレート1.5Mbpsという条件で配信されるかたちとなります。トランスコードをしないことなどからBasic Channelのほうがコストが安く、ライブ動画入力にかかるコストはStandard Channelの10分の1という料金です。(Standard Channelが$2.00/hour、Basic Channelが$0.20/hourがLive Video Input Costsとなります。)
さらにBasic Channelについては、入力解像度がフルHD、最大ビットレートが3.5Mbpsに対応するアップデートが2022年8月に行われました。
ただしBasic Channelの入力動画をトランスコードせずにそのまま配信するという条件は変わりません。入力がフルHD (1080p)、3.5Mbpsであれば視聴者にもそのままの画質(解像度、ビットレート)で配信されます。視聴者のネットワークなどの環境が良くない場合では、これが快適な視聴の妨げになることがあります。またAmazon IVSのコストは配信の解像度によっても変動します。Live Video Output Costsは時間あたり、SD、HD、フルHDの順に高価になっていくわけですね。
対してStandard Channelでは1080p、720p、480p、360p、160pとそれぞれの解像度とそれに応じた適切なビットレートにトランスコードされており、視聴者のネットワークなどの環境に合わせて最適なビットレートの動画が視聴できます。
Standard ChannelとBasic Channelの2つのChannel Typeのみでは、「フルHD (1080p)での配信までは必要ないけれど、コストを抑えつつ最適な解像度とビットレートにトランスコードした動画を配信したい」、という要件はカバーできていなかったわけです。
そこで、今回のAdvanced Channel Typeの登場です!Advanced Channelでは入力はStandard Channelと同じくフルHD (1080p)、最大ビットレート8.5Mbpsとなります。この入力動画はトランスコードされ、出力についてはABRの上限がSD (480p)まで、もしくHD (720p)までとなります。(前者をAdvanced SD、後者をAdvanced HDと称します。)Amazon IVS側で入力動画に対してトランスコードを行いABR ladderを提供しつつ、その最大解像度を調整できるわけですね。
このAdvanced Channel Typeは入力に対するコスト(Live Video Input Costs)もStandard Channelに比べて安価です。さらにAdvanced SDのほうがAdvanced HDよりも安価になります。出力に対するコスト(Live Video Output Costs)もHDよりもSDのほうが安価であることから、Advanced SDを利用すればトランスコードを行いつつ、最も安価にAmazon IVSを利用したライブストリーミングが実施できることとなります。
それぞれのChannel Typeの特徴について、表にまとめると以下のようになります。
Channel Type | 最大入力 解像度 |
最大 ビットレート |
ライブ動画 入力コスト |
トランスコード | 最大配信 解像度 |
---|---|---|---|---|---|
Standard | フルHD (1080p) |
8.5Mbps | $2.00/hour | あり (ABR配信) |
フルHD (1080p) |
Advanced HD | フルHD (1080p) |
8.5Mbps | $0.85/hour | あり (ABR配信) |
HD (720p) |
Advanced SD | フルHD (1080p) |
8.5Mbps | $0.50/hour | あり (ABR配信) |
SD (480p) |
Basic | フルHD (1080p) |
3.5Mbps | $0.20/hour | なし | (入力を そのまま) |
そしてさらに、Advanced Channel TypeではTranscode presetの設定が可能です。これは「Constrained bandwidth delivery」と「Higher bandwidth delivery」のどちらかを選択します。前者の「Constrained bandwidth delivery」は低めのビットレートを用いてトランスコードするため、主にネットワーク環境などが良くない視聴者に向けて配信する場合に利用できます。また動画のコンテンツとして動きが少ないもの(つまり多くのビットレートを必要としないもの)でも、「Constrained bandwidth delivery」が適しています。後者の「Higher bandwidth delivery」はトランスコードの際により高いビットレートが使用されます。ネットワークなどの環境が良い(動画視聴に特に問題がない)視聴者へ向けて配信する場合や、動画コンテンツのシーン変換が多いなど複雑で多くのビットレートを必要とする場合にこちらを使用します。
Advanced Channelを使ってみた
新たなChannel TypeであるAdvanced Channelの詳細やその利点などが確認できたところで、実際にこのAdvanced Channelを使ったライブストリーミングを確認してみたいと思います。
マネジメントコンソールのAmazon IVSのページ、[Create channel]ボタンから進みます。Setupの項目、Channel configurationはデフォルトで「Default configuration」が選択されています。この「Default configuration」だとChannel typeはStandard固定となるので、「Custom configuration」に変更します。
Channel typeが変更可能になりました。プルダウンリストを選択してみましょう。従来までのBasic
、Standard
に加えて、Advanced SD (480p)
、Advanced HD (720p)
が選択できるようになっています。ここでは「Advanced SD (480p)」を選択してみます。
AdvancedなChannel Typeを選択すると、続いてTranscode presetという項目が現れます。Constrained bandwidth delivery
とHigher bandwidth delivery
の2種が選択可能ですね。「Constrained bandwidth delivery」を選択します。
そのほかの項目はデフォルトでページ最下部の[Create channel]ボタンを押下してChannelを作成します。
Channel typeが「Advanced SD」、さらにTranscode presetを「Constrained bandwidth delivery」としたChannelが作成できました。
Standard ChannelとBasic Channelの違いのように、利用方法としては特にChannel Typeにより違いはありません。Stream configurationの項目からIngest serverとStream keyを確認、Streaming Softwareに設定して映像を打ち上げてみましょう。
今回Streaming SoftwareとしてはiPhone XS上のLarix Broadcasterを利用しました。Resolutionでは「1920x1080」、Frame rateは「30 fps」、Orientationは「Landscape」を選択します。ENCODINGの項目で、Bitrateを「8,000 Kbps」としました。Keyframe frequencyは「2 sec」に、またH.264 profileは「Main」にしています。
「Constrained bandwidth delivery」にした「Advanced SD Channel」で配信が正常に行えました。
ライブストリーミングを確認しつつ、Playback URLで参照できるトップレベルマニフェストファイルをcurlコマンドで確認してみます。以下のマニフェストファイルとなりました。
% curl https://xxxxxxxxxxxx.ap-northeast-1.playback.live-video.net/api/video/v1/ap-northeast-1.123456789012.channel.xxxxxxxxxxxx.m3u8 #EXTM3U #EXT-X-SESSION-DATA:DATA-ID="NODE",VALUE="video-edge-4ff3d4.tyo03" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE-TYPE",VALUE="weaver_cluster" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE",VALUE="video-weaver.tyo03" #EXT-X-SESSION-DATA:DATA-ID="SUPPRESS",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="SERVER-TIME",VALUE="1686027666.39" #EXT-X-SESSION-DATA:DATA-ID="TRANSCODESTACK",VALUE="2023-Transcode-QS-V1" #EXT-X-SESSION-DATA:DATA-ID="USER-IP",VALUE="XXX.XXX.XXX.XXX" #EXT-X-SESSION-DATA:DATA-ID="SERVING-ID",VALUE="1d74xxxxxxxxxxxxxxxxxxxxxxxxc840" #EXT-X-SESSION-DATA:DATA-ID="CLUSTER",VALUE="tyo03" #EXT-X-SESSION-DATA:DATA-ID="ABS",VALUE="false" #EXT-X-SESSION-DATA:DATA-ID="VIDEO-SESSION-ID",VALUE="220xxxxxxxxxxxxx737" #EXT-X-SESSION-DATA:DATA-ID="BROADCAST-ID",VALUE="42xxxxxxx35" #EXT-X-SESSION-DATA:DATA-ID="STREAM-TIME",VALUE="300.388364" #EXT-X-SESSION-DATA:DATA-ID="FUTURE",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-CLUSTER",VALUE="tyo03" #EXT-X-SESSION-DATA:DATA-ID="ORIGIN",VALUE="pdx05" #EXT-X-SESSION-DATA:DATA-ID="C",VALUE="[1000文字超のランダムな文字列]" #EXT-X-SESSION-DATA:DATA-ID="CUSTOMER_ID",VALUE="123456789012" #EXT-X-SESSION-DATA:DATA-ID="CONTENT_ID",VALUE="xxxxxxxxxxxx" #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="480p30",NAME="480p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=797999,RESOLUTION=852x480,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="480p30",FRAME-RATE=30.000 https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列1].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="360p30",NAME="360p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=640x360,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="360p30",FRAME-RATE=30.000 https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列2].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="160p30",NAME="160p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=220000,RESOLUTION=284x160,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="160p30",FRAME-RATE=30.000 https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列3].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="audio_only",NAME="audio_only",AUTOSELECT=NO,DEFAULT=NO #EXT-X-STREAM-INF:BANDWIDTH=160000,CODECS="mp4a.40.2",VIDEO="audio_only" https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列4].m3u8%
ハイライトした箇所から確認できるABR ladderについてまとめてみましょう。以下のようになっていますね。(audio-only renditionの内容は省略しています。)
NAME | BANDWIDTH | RESOLUTION | FRAME-RATE |
---|---|---|---|
480p | 797,999 | 852x480 | 30.000 |
360p | 400,000 | 640x360 | 30.000 |
160p | 220,000 | 284x160 | 30.000 |
これまでのStandard ChannelであればABR ladderで最上位の解像度は1080p、そして720pと続くかたちでした。(Standard ChannelのマニフェストファイルやABR ladderについては、Amazon IVSのマニフェストファイルを眺めてみた | DevelopersIO を参照ください。)
またBasic Channelでは入力がトランスコードされないため、今回ケースでは1080pの解像度のみでの配信となります。(ただし、Basic Channelでは最大ビットレート上限が3.5Mbpsであることにも注意しましょう。今回と同様の設定ではBasic ChannelへのIngestは行えない認識です。またBasic Channelのマニフェストファイルについては [UPDATE] Amazon IVSのbasic channelがフルHDまでの入力解像度に対応しました | DevelopersIO を参照ください。)
「Advanced SD Channel」では、フルHD (1080p)、最大8.5Mbpsの入力に対して、SD (480p)を最大としたABR ladderでの配信になる、というわけですね。これまで出力をSD (480p)までにしたい、という場合は、入力をSD (480p)に制限しながら(本来フルHD出力まで対応するため余計な入力コストを払いつつ)Standard Channelを使うか、もしくはトランスコードが行えずABRが利用できないBasic Channelを使う、という手段しかありませんでした。Advanced Channelを利用することで出力の最大解像度を限定しつつ、視聴者のネットワークなどの環境にあわせた配信が行えるABRを使い、またコストについても最適化した配信が行なえます!
Advanced Channelの各設定のマニフェストファイルを眺めてみる
さて、Advanced ChannelについてはAdvanced HD、Advanced SDの2種類のほかにTranscode presetの違いで合計4種類の設定が可能です。これらそれぞれについて、マニフェストファイルからABR ladderやビットレートがどのようになっているのかを確認してみます。
それぞれの設定でChannelを作成し、先ほどの「Advanced SD」、「Constrained bandwidth delivery」の際と同じStreaming Softwareの設定で映像を打ち上げます。マニフェストファイルからそれぞれの設定のABR ladderをまとめると以下のようになっていました。(ビットレートはおおよそで四捨五入した値となります。またフレームレートはいずれも30だったので省略してます。)
Channel Type |
Transcode preset |
ABR ladder |
---|---|---|
Advanced SD |
Constrained bandwidth delivery |
480p (800kbps), 360p (400kbps), 160 (220kbps) |
Advanced SD |
Higher bandwidth delivery |
480p (1.3Mbps), 360p (700kbps), 160 (270kbps) |
Advanced HD |
Constrained bandwidth delivery |
720p (2.0Mbps), 480p (800kbps), 360p (400kbps), 160 (220kbps) |
Advanced HD |
Higher bandwidth delivery |
720p (2.3Mbps), 480p (1.3Mbps), 360p (700kbps), 160 (270kbps) |
Standard | - | 1080p (5.5Mbps), 720p (2.3Mbps), 480p (1.4Mbps), 360p (630kbps), 160p (230kbps) |
Basic | - | 1080p (3.5Mbps) |
なお、Standard ChannelならびにBasic Channelについては、参考として以下ブログエントリの解像度・ビットレートをまとめています。
- Amazon IVSのマニフェストファイルを眺めてみた | DevelopersIO
- [UPDATE] Amazon IVSのbasic channelがフルHDまでの入力解像度に対応しました | DevelopersIO
Advanced ChannelではSDもしくはHDの違いでABRの最大解像度が異なるほか、Transcode presetの違いで各解像度のビットレートが異なることがマニフェストファイルから確認できますね。解像度が同じでもConstrained bandwidth deliveryのほうがHigher bandwidth deliveryよりも低いビットレートとなるので、視聴者のネットワーク環境などが良くないことが想定される場合、こちらを使うと良さそうです。また入力動画の複雑さでも違い効いてくるかと思います。
実際に確認したマニフェストファイルは以下となります。
Advanced SD/Higher bandwidth deliveryのマニフェストファイル
% curl https://xxxxxxxxxxxx.ap-northeast-1.playback.live-video.net/api/video/v1/ap-northeast-1.123456789012.channel.xxxxxxxxxxxx.m3u8 #EXTM3U #EXT-X-SESSION-DATA:DATA-ID="NODE",VALUE="video-edge-b02154.tyo03" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE-TYPE",VALUE="weaver_cluster" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE",VALUE="video-weaver.tyo03" #EXT-X-SESSION-DATA:DATA-ID="SUPPRESS",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="SERVER-TIME",VALUE="1686028290.52" #EXT-X-SESSION-DATA:DATA-ID="TRANSCODESTACK",VALUE="2023-Transcode-QS-V1" #EXT-X-SESSION-DATA:DATA-ID="USER-IP",VALUE="XXX.XXX.XXX.XXX" #EXT-X-SESSION-DATA:DATA-ID="SERVING-ID",VALUE="515axxxxxxxxxxxxxxxxxxxxxxxx3ca8" #EXT-X-SESSION-DATA:DATA-ID="CLUSTER",VALUE="tyo03" #EXT-X-SESSION-DATA:DATA-ID="ABS",VALUE="false" #EXT-X-SESSION-DATA:DATA-ID="VIDEO-SESSION-ID",VALUE="359xxxxxxxxxxxxx190" #EXT-X-SESSION-DATA:DATA-ID="BROADCAST-ID",VALUE="42xxxxxxx79" #EXT-X-SESSION-DATA:DATA-ID="STREAM-TIME",VALUE="70.522483" #EXT-X-SESSION-DATA:DATA-ID="FUTURE",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-CLUSTER",VALUE="tyo03" #EXT-X-SESSION-DATA:DATA-ID="ORIGIN",VALUE="pdx05" #EXT-X-SESSION-DATA:DATA-ID="C",VALUE="[1000文字超のランダムな文字列]" #EXT-X-SESSION-DATA:DATA-ID="CUSTOMER_ID",VALUE="123456789012" #EXT-X-SESSION-DATA:DATA-ID="CONTENT_ID",VALUE="xxxxxxxxxxxx" #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="480p30",NAME="480p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=1323000,RESOLUTION=852x480,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="480p30",FRAME-RATE=30.000 https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列1].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="360p30",NAME="360p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=700000,RESOLUTION=640x360,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="360p30",FRAME-RATE=30.000 https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列2].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="160p30",NAME="160p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=270000,RESOLUTION=284x160,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="160p30",FRAME-RATE=30.000 https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列3].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="audio_only",NAME="audio_only",AUTOSELECT=NO,DEFAULT=NO #EXT-X-STREAM-INF:BANDWIDTH=160000,CODECS="mp4a.40.2",VIDEO="audio_only" https://video-weaver.tyo03.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列4].m3u8%
Advanced HD/Constrained bandwidth deliveryのマニフェストファイル
% curl https://xxxxxxxxxxxx.ap-northeast-1.playback.live-video.net/api/video/v1/ap-northeast-1.123456789012.channel.xxxxxxxxxxxx.m3u8 #EXTM3U #EXT-X-SESSION-DATA:DATA-ID="NODE",VALUE="video-edge-8bda88.tyo05" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE-TYPE",VALUE="weaver_cluster" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE",VALUE="video-weaver.tyo05" #EXT-X-SESSION-DATA:DATA-ID="SUPPRESS",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="SERVER-TIME",VALUE="1686028635.36" #EXT-X-SESSION-DATA:DATA-ID="TRANSCODESTACK",VALUE="2023-Transcode-QS-V1" #EXT-X-SESSION-DATA:DATA-ID="USER-IP",VALUE="XXX.XXX.XXX.XXX" #EXT-X-SESSION-DATA:DATA-ID="SERVING-ID",VALUE="4633xxxxxxxxxxxxxxxxxxxxxxxx3735" #EXT-X-SESSION-DATA:DATA-ID="CLUSTER",VALUE="tyo05" #EXT-X-SESSION-DATA:DATA-ID="ABS",VALUE="false" #EXT-X-SESSION-DATA:DATA-ID="VIDEO-SESSION-ID",VALUE="897xxxxxxxxxxxxx544" #EXT-X-SESSION-DATA:DATA-ID="BROADCAST-ID",VALUE="42xxxxxxx87" #EXT-X-SESSION-DATA:DATA-ID="STREAM-TIME",VALUE="57.355548" #EXT-X-SESSION-DATA:DATA-ID="FUTURE",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-CLUSTER",VALUE="tyo05" #EXT-X-SESSION-DATA:DATA-ID="ORIGIN",VALUE="pdx05" #EXT-X-SESSION-DATA:DATA-ID="C",VALUE="[1000文字超のランダムな文字列]" #EXT-X-SESSION-DATA:DATA-ID="CUSTOMER_ID",VALUE="123456789012" #EXT-X-SESSION-DATA:DATA-ID="CONTENT_ID",VALUE="xxxxxxxxxxxx" #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="720p30",NAME="720p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=1952999,RESOLUTION=1280x720,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="720p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列1].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="480p30",NAME="480p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=797999,RESOLUTION=852x480,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="480p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列2].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="360p30",NAME="360p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=640x360,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="360p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列3].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="160p30",NAME="160p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=220000,RESOLUTION=284x160,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="160p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列4].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="audio_only",NAME="audio_only",AUTOSELECT=NO,DEFAULT=NO #EXT-X-STREAM-INF:BANDWIDTH=160000,CODECS="mp4a.40.2",VIDEO="audio_only" https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列5].m3u8
Advanced HD/Higher bandwidth deliveryのマニフェストファイル
% curl https://xxxxxxxxxxxx.ap-northeast-1.playback.live-video.net/api/video/v1/ap-northeast-1.123456789012.channel.xxxxxxxxxxxx.m3u8 #EXTM3U #EXT-X-SESSION-DATA:DATA-ID="NODE",VALUE="video-edge-174fde.tyo05" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE-TYPE",VALUE="weaver_cluster" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-NODE",VALUE="video-weaver.tyo05" #EXT-X-SESSION-DATA:DATA-ID="SUPPRESS",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="SERVER-TIME",VALUE="1686028931.64" #EXT-X-SESSION-DATA:DATA-ID="TRANSCODESTACK",VALUE="2023-Transcode-QS-V1" #EXT-X-SESSION-DATA:DATA-ID="USER-IP",VALUE="XXX.XXX.XXX.XXX" #EXT-X-SESSION-DATA:DATA-ID="SERVING-ID",VALUE="1f9fxxxxxxxxxxxxxxxxxxxxxxxx4a9a" #EXT-X-SESSION-DATA:DATA-ID="CLUSTER",VALUE="tyo05" #EXT-X-SESSION-DATA:DATA-ID="ABS",VALUE="false" #EXT-X-SESSION-DATA:DATA-ID="VIDEO-SESSION-ID",VALUE="415xxxxxxxxxxxxx463" #EXT-X-SESSION-DATA:DATA-ID="BROADCAST-ID",VALUE="48xxxxxxx81" #EXT-X-SESSION-DATA:DATA-ID="STREAM-TIME",VALUE="119.640317" #EXT-X-SESSION-DATA:DATA-ID="FUTURE",VALUE="true" #EXT-X-SESSION-DATA:DATA-ID="MANIFEST-CLUSTER",VALUE="tyo05" #EXT-X-SESSION-DATA:DATA-ID="ORIGIN",VALUE="cmh01" #EXT-X-SESSION-DATA:DATA-ID="C",VALUE="[1000文字超のランダムな文字列]" #EXT-X-SESSION-DATA:DATA-ID="CUSTOMER_ID",VALUE="123456789012" #EXT-X-SESSION-DATA:DATA-ID="CONTENT_ID",VALUE="xxxxxxxxxxxx" #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="720p30",NAME="720p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=2373000,RESOLUTION=1280x720,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="720p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列1].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="480p30",NAME="480p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=1323000,RESOLUTION=852x480,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="480p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列2].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="360p30",NAME="360p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=700000,RESOLUTION=640x360,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="360p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列3].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="160p30",NAME="160p",AUTOSELECT=YES,DEFAULT=YES #EXT-X-STREAM-INF:BANDWIDTH=270000,RESOLUTION=284x160,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="160p30",FRAME-RATE=30.000 https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列4].m3u8 #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="audio_only",NAME="audio_only",AUTOSELECT=NO,DEFAULT=NO #EXT-X-STREAM-INF:BANDWIDTH=160000,CODECS="mp4a.40.2",VIDEO="audio_only" https://video-weaver.tyo05.hls.live-video.net/v1/playlist/[900文字超のランダムな文字列5].m3u8
まとめ
Amazon Interactive Video Service (Amazon IVS)で新たに利用可能になったAdvanced Channel Typeについて、これまで利用可能だったStandard、Basicの2つのChannelとの違いを確認しつつ、実際にAdvanced Channelでのライブストリーミングを行ってみました。視聴者へ配信する際にAdaptive Bitrate (ABR)が利用でき、視聴者のネットワークなど再生環境にあわせられるというStandard Channelの利点を持ちつつ、ABRの解像度の上限を指定することでコストを抑えたライブストリーミングが可能になります。またAdvanced ChannelにはTranscode presetも指定可能で、視聴者のネットワークなどの環境もしくは動画コンテンツの複雑さにあわせて設定することができます。
Standard ChannelやBasic Channelよりも事細かな設定が可能なAdvanced Channel Type、名前の由来としては設定項目として「高度な(Advanced)」詳細設定が可能なChannelである、ということかなと思いました。(はじめに「Advanced Channel」の名前を見たとき、Standardよりも高い解像度やビットレートが使える?と思ったのですが、そうではありませんでしたね。個人的に勘違いしないように気をつけます。)